// pages/login/login.js
import req from "../../utils/req.js";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    phone: "",
    password: "",
  },

  // handleUserName(event){
  //   // console.log('handleUserName', event)
  //   // 收集当前用户输入数据,并保存到data中
  //   const phone = event.detail.value;
  //   this.setData({
  //     phone
  //   })
  // },

  // handlePassWord(event) {
  //   // console.log('handleUserName', event)
  //   // 收集当前用户输入数据,并保存到data中
  //   const password = event.detail.value;
  //   this.setData({
  //     password
  //   })
  // },

  handleInput(e) {
    //  小程序无法像Vue一样直接通过函数传入对饮参数
    // 可以通过自定义属性，向事件回调函数内部传参
    // console.log(e);
    // event.target指的是当前事件的触发者（也就是最内层子元素）
    // event.currentTarget指的是当前事件的事件源（也就是触发函数的元素）
    const name = e.currentTarget.dataset.id;
    // 收集当前用户输入的数据，并保存到data中
    const value = e.detail.value;
    // 通过传入的数据更新数据
    this.setData({
      // 因为name是动态的，所以需要使用中括号语法
      [name]: value,
    });
  },

  // 点击登录按钮
  async handleLogin() {
    // 1.收集数据
    const { phone, password } = this.data;

    // 前台表单验证（可以减少发送无用的请求）
    if (!phone.trim()) {
      // 弹窗提示用户
      wx.showToast({
        title: "手机号不能为空！！！",
        icon: "none",
      });
      // 退出当前函数
      return;
    }

    if (!password.trim()) {
      // 弹窗提示用户
      wx.showToast({
        title: "密码不能为空！！！",
        icon: "none",
      });
      // 退出当前函数
      return;
    }

    // 2.整理数据
    // 小程序中的request，如果发现是GET请求，会自动将data中的数据拼接成query参数
    // 传参的时候传一个isLogin: true，在req请求的时候可以做判断
    const query = { phone, password, isLogin: true };

    // 3.发送请求
    // url:/login/cellphone?phone=xxx&password=yyy
    /* 响应情况:
        1.帐号错误 400
        2.密码错误 502
        3.验证通过 200
    */
    const res = await req("/login/cellphone", query);
    // console.log(res);

    // 成功做什么
    if (res.code === 200) {
      // 弹窗提示用户登录成功
      wx.showToast({
        title: "登录成功，即将跳转页面",
        icon: "none",
      });

      // 将用户信息保存到storage中
      wx.setStorage({
        key: "userInfo",
        data: JSON.stringify(res.profile),
      });

      // 跳转到个人中心页面
      wx.switchTab({
        url: "/pages/personal/personal",
      });
      return;
    }

    // 失败做什么
    if (res.code === 400 || res.code === 502) {
      wx.showToast({
        title: "账号密码错误，请重新输入",
        icon: "none",
      });
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {},

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},
});
